This invention relates to tracking, navigation, pose estimation, localization, auto-calibration, scene modeling, structure-from-motion and/or map-building based on sensor inputs.
Tracking or navigation systems often make use of measurements from sensors to aid in determining a location (“localization”) or an orientation (attitude and heading) or a pose (position and orientation) of an object such as a person, a vehicle or a robot as it navigates in an environment, such as within the bounds of a building. A variety of types of sensors are available for such systems, including sensors that measure a relative location between a sensor and a target. An example of such a sensor/target combination is an acoustic emitter (target) and a microphone array (sensor) that can determine a direction of arrival of an acoustic signal broadcast from the emitter. Different types of sensors measure different aspects of the relative pose of a sensor and a target, such as a range, direction, or relative orientation. Different sensors may have different measurement characteristics that affect the mapping between the relative pose of a sensor and a target and the measurement values provided by the sensor. These characteristics can include uncertainty or noise characteristics of the measurement values.
Systems have been developed that use Kalman Filtering techniques to incorporate information in sensor measurements to track the position or orientation of an object, typically also using information about the dynamic characteristics of the object. The implementation of such Kalman Filtering techniques is often complex, and typically requires detailed knowledge of the measurement characteristics of the specific sensors used in tracking the object.
Some navigation systems perform simultaneous localization and mapping (SLAM), also known in the field of computer vision as structure-from-motion (SfM). The mapping aspect relates to determining the locations of fixed landmarks or beacons in the environment while at the same time using sensor measurements from those fixed landmarks to assist in localization of the object. As an example, when a robot navigates an uncharted territory, such as in a Mars rover mission, or in an underground mining or undersea operation, the robot may determine its location relative to the surrounding environment. If a complete map of the terrain is not available in advance, the robot may observe landmarks, build a map based on the landmark observations, and determine its location on the map that it has constructed so far. The landmarks may be man-made markers or natural features of the terrain.
As another example, an automated factory may use robots to move materials and products among different locations. Beacons, such as ultrasound emitters, or graphic markers having special patterns, may be placed at various locations in the factory. The robots may have sensors, such as ultrasound receivers, laser range finders, cameras, or pattern recognition devices, for determining their positions relative to reference points in the factory environment. The locations of the reference points may not be known in advance, so the robots may update their maps of the factory based on inputs from the sensors, and navigate through the factory based on their updated maps.
It may be desirable to also perform automatic calibration of sensors during the ongoing process of localization of the object. For example, various types of sensors may have different types of calibration parameters, such as measurement biases and scale factors. Examples of calibration parameters are focal lengths or distortion parameters of a camera lens, or alignment of a camera relative to the vehicle carrying it. The Kalman Filter implementation may estimate the sensor calibration parameters using a common infrastructure that is used to determine the location of the vehicle. As with the localization and mapping approaches, the characteristics of the calibration parameters are typically reflected in the implementation of the Kalman Filter techniques. Some systems combine localization, mapping, and auto-calibration.